//
//  ViewController.m
//  08-UITableView
//
//  Created by 韩旭 on 16/7/25.
//  Copyright © 2016年 lanou. All rights reserved.
//
#import "ViewController.h"
#import "UIView+Frame.h"
#define WIDETH self.view.frame.size.width
#define HEIGHT self.view.frame.size.height
#define COLORAUTO [UIColor colorWithRed:(arc4random()%256/255.0) green:(arc4random()%256/255.0) blue:(arc4random()%256/255.0) alpha:1.0]
#define kTableViewReuse @"cell"
// 必须签订的两个协议
@interface ViewController ()<UITableViewDataSource, UITableViewDelegate>
// 计数器
@property (nonatomic, assign) NSInteger n;
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    self.n = 0;
    self.view.backgroundColor = [UIColor whiteColor];
//    self.navigationController.navigationBar.hidden = YES;
    self.navigationController.navigationBarHidden = YES;
//    UITableView
//    1. 基本创建方式
    UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStylePlain];
//     小应用：
//    隐藏, 多余tableView的空cell
//    空cell一般出现一个界面只展示几条数据时，并且数据占不满整个屏幕
    tableView.tableFooterView = [[UIView alloc] init];
    tableView.backgroundColor = [UIColor clearColor];
    [self.view addSubview:tableView];
//    tableView默认创建alwaysBounceVertical为开启状态
//    tableView.alwaysBounceVertical = YES;
//    2.相关属性：
//    1.行高 （直接设置, 行高（默认是44））
//   预估行高度
//    tableView.estimatedRowHeight = 0;
     tableView.rowHeight = 40;
//    分割线颜色
//    隐藏分割线 , （设置隐藏分割线）UITableViewCellSeparatorStyleNone
//    默认：UITableViewCellSeparatorStyleSingleLine
    tableView.separatorStyle = YES;
    tableView.separatorColor = [UIColor greenColor];
//    tableView的头视图
//    headerView的X.Y 不影响其位置
//    可以：个人资料等一类的东西 一般用来放置轮播图
//    UIView *height = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 200)];
//    height.backgroundColor = [UIColor yellowColor];
//    tableView.tableHeaderView = height;
////    如果tableView.heightView要进行修改必须加上
////    beginUpdates
////    endUpdates
//    [tableView beginUpdates];
//    tableView.tableHeaderView.HX_height = 20;
//    [tableView endUpdates];
//    footerView x会对尾视图产生坐标有影响， y不会有影响
//    UIView *viewFooter = [[UIView alloc] initWithFrame:CGRectMake(100, 100, self.view.frame.size.width, 200)];
//    viewFooter.backgroundColor = [UIColor blueColor];
//    [tableView beginUpdates];
//    tableView.tableFooterView = viewFooter;
//    [tableView endUpdates];
//    3. tableView数据展示
    tableView.delegate = self;// 代理帮助tableView执行一些事件
    tableView.dataSource = self;// 数据源 用来给tableView展示数据
//    注册：
//    [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:kTableViewReuse];
}
// 行数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}
// 返回数据源个数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 10;
}
//        返回数据源cell的样式
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
//    static NSString *ID = @"cell";
//    从重用池中取出对应得标识cell
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kTableViewReuse];
//    cell 的属性
    if (!cell) {
//        cell Style
//    UITableViewCellStyleDefault   cell 默认下没有副标题
//        UITableViewCellStyleValue1  // 最左边主标题（黑）, 最右边副标题（灰）
//        UITableViewCellStyleValue2 自号变小, 蓝色主标题, 黑色副标题, 主副标题紧挨
//        UITableViewCellStyleSubtitle  主副标题上下紧挨, 主标题自号大, 副标题字号小
         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:kTableViewReuse];
        _n ++;
        NSLog(@"创建新cell --- %@ -- %ld", cell, _n);
        
    } else {
        NSLog(@"重用旧cell -- %@ ", cell);
    }
    
//    cell创建方式：一。直接创建
//    cell创建方式：二。从重用池中取出对应标识的cell
//    cell创建方式：三。通过注册的方式registerClass方式创建
//    注意：cell注册出来的style是default（没有副标题）
//    cell  主标题
    cell.textLabel.text = @"嘿嘿";
//    cell  副标题
    cell.detailTextLabel.text = @"呵呵";
    cell.imageView.image = [UIImage imageNamed:@"hp_player_btn_play_highlight"];
    cell.backgroundColor = COLORAUTO;
    
    return cell;
}
@end